
package com.jf.cloud.live.service;

import com.jf.cloud.common.database.dto.PageDTO;
import com.jf.cloud.common.database.vo.PageVO;
import com.jf.cloud.live.dto.LiveRoomProdDTO;
import com.jf.cloud.live.model.LiveRoom;
import com.jf.cloud.live.model.LiveRoomProd;
import me.chanjar.weixin.common.error.WxErrorException;

import java.util.List;

/**
 * 直播商品
 *
 * @author zz
 * @date 2022-08-17 17:09:06
 */
public interface LiveRoomProdService {

    /**
     * 分页获取直播商品列表
     * @param pageDTO 分页参数
     * @return 直播商品列表分页数据
     */
    PageVO<LiveRoomProd> page(PageDTO pageDTO, LiveRoomProdDTO liveRoomProdDTO);

    /**
     * 根据直播商品id获取直播商品
     *
     * @param roomProdId 直播商品id
     * @return 直播商品
     */
    LiveRoomProd getByRoomProdId(Long roomProdId);

    /**
     * 保存直播商品
     * @param liveRoomProd 直播商品
     */
    void save(LiveRoomProd liveRoomProd);

    /**
     * 更新直播商品
     * @param liveRoomProd 直播商品
     */
    void update(LiveRoomProd liveRoomProd);

    /**
     * 根据直播商品id删除直播商品
     * @param roomProdId 直播商品id
     */
    void deleteById(Long roomProdId);

    /**
     * 根据roomId获取商品列表
     * @param id
     * @return
     */
    List<LiveRoomProd> getByRoomId(Integer id);

    /**
     * 批量保存直播间商品信息
     * @param liveRoom
     */
    void saveBatchAndRoomId(LiveRoom liveRoom) throws WxErrorException;

    /**
     * 批量删除 删除直播间和商品的关联
     * @param ids
     */
    void deleteBatchById(List<Long> ids);
}
